﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace dacli.modelos.dao
{
    public class PacientesDAO : EntidadDao
    {
        public Pacientes pacientes {get; set;}

        public Pacientes asignarId(long id)
        {
            this.consultar("id=" + id);
            return this.pacientes;
        }    
        public PacientesDAO()
                : base("clientes")
        {
            
        }
        public override long incluir()
        {
            string sql = "INSERT INTO " + this.tabla + " (cedula, nombres, direccion, telefono, fecha_nacimiento) values" +
            "('" + pacientes.cedula+ "','" + pacientes.nombre + "','" +  pacientes.direccion +"','"+ pacientes.telefono + "','" + pacientes.fechaNacimiento.ToString("yyyyMMdd") +"')";
            long pacienteResult = conexion.ejecutar(sql);
            if (pacienteResult == -1) new NotSupportedException();
            pacientes.id = pacienteResult;
            return pacienteResult;
        }   

        public override long modificar()
        {
            var fecnac = pacientes.fechaNacimiento.ToString("yyyyMMdd");
            string sql = "UPDATE " + this.tabla + " SET "
                        + "nombres ='" + pacientes.nombre + "', "
                        + "fecha_nacimiento ='" + fecnac + "' "
                        + "WHERE id =" + pacientes.id;
            return conexion.ejecutar(sql);
        }

        public override long eliminar()
        {
            string sql = "DELETE FROM " + this.tabla + " WHERE "
            + "id =" + pacientes.id;
            return conexion.ejecutar(sql);            
        }

        public override bool consultar(string filtro)
       {
            string sql = "SELECT * FROM " + this.tabla + " WHERE "
+ filtro;
            SqlDataReader reader = conexion.consultar(sql);
            if (reader.Read())
            {
                    this.pacientes = new Pacientes();
                    this.pacientes.id = reader.GetInt32(0);
                    this.pacientes.cedula = reader.GetValue(1).ToString();
                    this.pacientes.nombre = reader.GetValue(2).ToString();
                    this.pacientes.direccion = reader.GetValue(3).ToString();
                    this.pacientes.telefono = reader.GetValue(4).ToString();
                    DateTime fecha = DateTime.Now;
                    try
                    {
                        string strFecha = reader.GetValue(5).ToString();
                        DateTime.TryParse(strFecha, out fecha);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Source);
                    }
                    this.pacientes.fechaNacimiento = fecha;

                    reader.Close();
                return true;
            }
            return false;
        }


    }
}
